<?php
/**
 * File Klasse
 * 
 * $Rev: $
 * $Author: $
 * $Date: $
 * $Id: $
 * $URL: $
 * @author: Adrian Liechti <info@jahweh.ch>
 * @copyright: 2010-2011 Adrian Liechti, GPL3 and CC3 BY-SA
 * TODO Fileoperationen (auslesen, erstellen, löschen, usw.)
 */

class file extends path {
	
	protected	$baseName;	// dir/[file.ext]
	protected	$fileName;	// dir/[file].ext
	protected	$dirName;	// [dir]/file.ext
	protected	$ext;		// dir/file.[ext]
	
	public function init () {
		// TODO Nur abfragen, wenn es dies auch braucht [cachen]... blabla
		$pathinfo = pathinfo($this->path);
		$this->baseName	= $pathinfo['basename'];
		$this->fileName	= $pathinfo['filename'];
		$this->dirName	= $pathinfo['dirname'];
		$this->ext		= $pathinfo['extension'];
	}
	
	public function baseName () {
		return $this->baseName;
	}
	
	public function fileName () {
		return $this->fileName;
	}
	
	public function dirName () {
		return $this->dirName;
	}
	
	public function ext () {
		return $this->ext;
	}
	
	static public function getFromDir ($fileName, dir $dir) {
		/**
		 * TODO Andere möglichkeit finden um Dir-Klasse zu File.. konvertieren
		 * AAARG!!!
		 * Da sollte es doch was eleganteres geben, die Variablen kent man ja schon
		 * ist ziemlich sinnfrei hier den "GANZEN" construct nochmal durch zu gehen!
		 */
		return new file (
			$dir->path . '/' . $fileName, 
			($dir->pathRoot === '' ? path::$root : $dir->pathRoot)
		);
	}

}

?>